home *** CD-ROM | disk | FTP | other *** search
Wrap
SHMEM_IPUT(3) SHMEM_IPUT(3) NNNNAAAAMMMMEEEE sssshhhhmmmmeeeemmmm____ccccoooommmmpppplllleeeexxxx____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____iiiinnnntttt____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____iiiinnnntttteeeeggggeeeerrrr____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt4444, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt8888, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt33332222, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt66664444, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt111122228888, sssshhhhmmmmeeeemmmm____llllooooggggiiiiccccaaaallll____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____lllloooonnnngggg____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____rrrreeeeaaaallll____iiiippppuuuutttt, sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____iiiippppuuuutttt - Transfer strided data to a specified processing element (PE). SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS C or C++: ####iiiinnnncccclllluuuuddddeeee <<<<mmmmpppppppp////sssshhhhmmmmeeeemmmm....hhhh>>>> vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____iiiippppuuuutttt((((ddddoooouuuubbbblllleeee ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt ddddoooouuuubbbblllleeee ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____iiiippppuuuutttt((((ffffllllooooaaaatttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt ffffllllooooaaaatttt ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____iiiinnnntttt____iiiippppuuuutttt((((iiiinnnntttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt iiiinnnntttt ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____iiiippppuuuutttt33332222((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____iiiippppuuuutttt66664444((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____iiiippppuuuutttt111122228888((((vvvvooooiiiidddd ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt vvvvooooiiiidddd ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnngggg____iiiippppuuuutttt((((lllloooonnnngggg ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____iiiippppuuuutttt((((lllloooonnnngggg ddddoooouuuubbbblllleeee ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg ddddoooouuuubbbblllleeee ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____iiiippppuuuutttt((((lllloooonnnngggg lllloooonnnngggg ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt lllloooonnnngggg lllloooonnnngggg ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; vvvvooooiiiidddd sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____iiiippppuuuutttt((((sssshhhhoooorrrrtttt ****_t_a_r_g_e_t,,,, ccccoooonnnnsssstttt sssshhhhoooorrrrtttt ****_s_o_u_r_c_e,,,, ppppttttrrrrddddiiiiffffffff____tttt _t_s_t,,,, ppppttttrrrrddddiiiiffffffff____tttt _s_s_t,,,, ssssiiiizzzzeeee____tttt _l_e_n,,,, iiiinnnntttt _p_e))));;;; Fortran: IIIINNNNTTTTEEEEGGGGEEEERRRR _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____CCCCOOOOMMMMPPPPLLLLEEEEXXXX____IIIIPPPPUUUUTTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____DDDDOOOOUUUUBBBBLLLLEEEE____IIIIPPPPUUUUTTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIINNNNTTTTEEEEGGGGEEEERRRR____IIIIPPPPUUUUTTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIIPPPPUUUUTTTT4444((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIIPPPPUUUUTTTT8888((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIIPPPPUUUUTTTT33332222((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIIPPPPUUUUTTTT66664444((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____IIIIPPPPUUUUTTTT111122228888((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____LLLLOOOOGGGGIIIICCCCAAAALLLL____IIIIPPPPUUUUTTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) CCCCAAAALLLLLLLL SSSSHHHHMMMMEEEEMMMM____RRRREEEEAAAALLLL____IIIIPPPPUUUUTTTT((((_t_a_r_g_e_t,,,, _s_o_u_r_c_e,,,, _t_s_t,,,, _s_s_t,,,, _l_e_n,,,, _p_e)))) DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN The iput routines provide a high-performance method for copying a strided array from the local PE to a contiguous data object on a different PE. The routines return when the data has been copied out of the source array on the local PE but not necessarily before the data has been delivered to the remote data object. The arguments are as follows: _t_a_r_g_e_t Array to be updated on the remote PE. This data object must be remotely accessible. _s_o_u_r_c_e Array containing the data to be copied. _t_s_t The stride between consecutive elements of the _t_a_r_g_e_t array. The stride is scaled by the element size of the _t_a_r_g_e_t array. A value of 1 indicates contiguous data. _t_s_t must be of type integer. If you are using Fortran, it must be a default integer value. _s_s_t The stride between consecutive elements of the _s_o_u_r_c_e array. The stride is scaled by the element size of the source array. A value of 1 indicates contiguous data. _s_s_t must be of type integer. If you are using Fortran, it must be a default integer value. _l_e_n Number of elements in the _t_a_r_g_e_t and _s_o_u_r_c_e arrays. _l_e_n must be of type integer. If you are using Fortran, it must be a constant, variable, or array element of default integer type. _p_e PE number of the remote PE. _p_e must be of type integer. If you are using Fortran, it must be a constant, variable, or array element of default integer type. The _t_a_r_g_e_t and _s_o_u_r_c_e data objects must conform to typing constraints, which are as follows: RRRRoooouuuuttttiiiinnnneeee DDDDaaaattttaaaa TTTTyyyyppppeeee ooooffff _t_a_r_g_e_t aaaannnndddd _s_o_u_r_c_e sssshhhhmmmmeeeemmmm____iiiippppuuuutttt33332222, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt4444 Any noncharacter type that has a storage size equal to 32 bits. sssshhhhmmmmeeeemmmm____iiiippppuuuutttt66664444, sssshhhhmmmmeeeemmmm____iiiippppuuuutttt8888 Any noncharacter type that has a storage size equal to 64 bits. sssshhhhmmmmeeeemmmm____iiiippppuuuutttt111122228888 Any noncharacter type that has a storage size equal to 128 bits. sssshhhhmmmmeeeemmmm____sssshhhhoooorrrrtttt____iiiippppuuuutttt Elements of type short. sssshhhhmmmmeeeemmmm____iiiinnnntttt____iiiippppuuuutttt Elements of type int. sssshhhhmmmmeeeemmmm____lllloooonnnngggg____iiiippppuuuutttt Elements of type long. sssshhhhmmmmeeeemmmm____lllloooonnnngggglllloooonnnngggg____iiiippppuuuutttt Elements of type long long. sssshhhhmmmmeeeemmmm____ffffllllooooaaaatttt____iiiippppuuuutttt Elements of type float. sssshhhhmmmmeeeemmmm____ddddoooouuuubbbblllleeee____iiiippppuuuutttt Elements of type double. sssshhhhmmmmeeeemmmm____lllloooonnnnggggddddoooouuuubbbblllleeee____iiiippppuuuutttt Elements of type long double. SSSSHHHHMMMMEEEEMMMM____CCCCOOOOMMMMPPPPLLLLEEEEXXXX____IIIIPPPPUUUUTTTT Elements of type complex of default size. SSSSHHHHMMMMEEEEMMMM____DDDDOOOOUUUUBBBBLLLLEEEE____IIIIPPPPUUUUTTTT ((((FFFFoooorrrrttttrrrraaaannnn)))) Elements of type double precision. SSSSHHHHMMMMEEEEMMMM____IIIINNNNTTTTEEEEGGGGEEEERRRR____IIIIPPPPUUUUTTTT Elements of type integer. SSSSHHHHMMMMEEEEMMMM____LLLLOOOOGGGGIIIICCCCAAAALLLL____IIIIPPPPUUUUTTTT Elements of type logical. SSSSHHHHMMMMEEEEMMMM____RRRREEEEAAAALLLL____IIIIPPPPUUUUTTTT Elements of type real. If you are using Fortran, data types must be of default size. For example, a real variable must be declared as RRRREEEEAAAALLLL, RRRREEEEAAAALLLL****4444 or RRRREEEEAAAALLLL((((KKKKIIIINNNNDDDD====4444)))). NNNNOOOOTTTTEEEESSSS See iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm(3) for a definition of the term _r_e_m_o_t_e_l_y _a_c_c_e_s_s_i_b_l_e. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS Consider the following simple sssshhhhmmmmeeeemmmm____lllloooonnnngggg____iiiippppuuuutttt example for C/C++ programs. #include <mpp/shmem.h> main() { short source[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; static short target[10]; start_pes(2); if (_my_pe() == 0) { /* put 10 words into target on PE 1 */ shmem_short_iput(target, source, 1, 2, 5, 1); } shmem_barrier_all(); /* sync sender and receiver */ if (_my_pe() == 1) { shmem_udcflush(); printf("target on PE %d is %d %d %d %d %d0, _my_pe(), (int)target[0], (int)target[1], (int)target[2], (int)target[3], (int)target[4] ); } shmem_barrier_all(); /* sync before exiting */ } SSSSEEEEEEEE AAAALLLLSSSSOOOO iiiinnnnttttrrrroooo____sssshhhhmmmmeeeemmmm(3), sssshhhhmmmmeeeemmmm____iiiiggggeeeetttt(3), sssshhhhmmmmeeeemmmm____iiiixxxxppppuuuutttt(3), sssshhhhmmmmeeeemmmm____ppppuuuutttt(3), sssshhhhmmmmeeeemmmm____qqqquuuuiiiieeeetttt(3) sssshhhhmmmmeeeemmmm____uuuuddddccccfffflllluuuusssshhhh(3), sssshhhhmmmmeeeemmmm____uuuuddddccccfffflllluuuusssshhhh____lllliiiinnnneeee(3) _M_e_s_s_a_g_e _P_a_s_s_i_n_g _T_o_o_l_k_i_t: _M_P_I _P_r_o_g_r_a_m_m_e_r'_s _M_a_n_u_a_l